﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.IO;
using Microsoft.Security.Application;

namespace InhollandAirPortal {
  public partial class ReisOverzicht : System.Web.UI.Page {
    protected void Page_Init(object sender, EventArgs e) {
      Calendar1.DayRender += OnDayRender;
    }

    protected void Page_Load(object sender, EventArgs e) {
    }

    private void HaalReizenOp(DateTime ADateTime) {
      // Lijst van reizen met deze datum ophalen
      ReisLijst Reisjes = new ReisLijst(ADateTime);
      if (Reisjes.Count > 0) { // Zijn er reizen?
        LoadReizen(Reisjes);
      } else { // Er zijn geen reizen; alert weergeven
        Master.FindControl("cphContent").Controls.Add(Message.ShowMessage(MessageText.Message_GeenReizenOpDatum, MessageType.MessageType_Alert));
      }
    }

    private void LoadReizen(ReisLijst aReisLijst) {
      StringWriter stringWriter = new StringWriter();
      using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) {
        foreach (Reis R in aReisLijst) { // Voor elke reis een Div opbouwen met de reisinformatie
          writer.Write(Reis.BouwReisDiv(R, true));
        }
				// Toevoegen aan pagina
        Master.FindControl("cphContent").Controls.Add(new LiteralControl(writer.InnerWriter.ToString()));
      }
    }

    protected void Calendar1_SelectionChanged(object sender, EventArgs e) { // Reizen ophalen als er op de kalender geklikt wordt
      HaalReizenOp(Calendar1.SelectedDate);
    }

    protected void OnDayRender(object sender, DayRenderEventArgs e) {
      ReisDatums ReisData = new ReisDatums();
      if (!ReisData.Contains(e.Day.Date)) { // Geen reizen beschikbaar
        e.Cell.Attributes.Add("title", "Geen reizen beschikbaar op deze datum");
        e.Day.IsSelectable = false;
      }
      if (e.Day.Date < DateTime.Now) { // Dag is niet te selecteren als deze al is geweest
        e.Day.IsSelectable = false;
      }
    }
  }
}